<?php
/**
 * User: Thomas
 * Date: 30/05/11
 * Time: 19:46
 */
 
class Tools {
    public function __construct(){}


    /***
     * retourn les coordonés GPS d'une position
     * @static
     * @param  $villeName
     * @param  $adress
     * @return
     */
    static function getGPS($villeName, $adress){
        $urlLoc = utf8_encode(str_replace(' ', '%20', 'http://maps.google.com/maps/api/geocode/json?address='.$adress.', '.$villeName.'&sensor=false'));
        return json_decode(file_get_contents($urlLoc))->results[0]->geometry->location;
    }

    /**
     * Applani une chaine comparaison
     * @static
     * @param  $string
     * @return string
     */
    static function toLevel($string){
        $string = strtolower($string);
        return Tools::replaceAccent($string);
    }

    /**
     * Fonction pour remplacer les accents
     * @static
     * @param  $string
     * @return string
     */
    static function replaceAccent($string){
        $remplace = array('à'=>'a',
                         'á'=>'a',
                         'â'=>'a', 
                         'ã'=>'a',
                         'ä'=>'a',
                         'å'=>'a',
                         'ò'=>'o',
                         'ó'=>'o',
                         'ô'=>'o',
                         'õ'=>'o',
                         'ö'=>'o',
                         'è'=>'e',
                         'é'=>'e',
                         'ê'=>'e',
                         'ë'=>'e',
                         'ì'=>'i',
                         'í'=>'i',
                         'î'=>'i',
                         'ï'=>'i',
                         'ù'=>'u',
                         'ú'=>'u',
                         'û'=>'u',
                         'ü'=>'u',
                         'ÿ'=>'y',
                         'ñ'=>'n',
                         'ç'=>'c',
                         'ø'=>'0'
                         );
        return strtr($string,$remplace);
    }


    /***
     * Retourne le mime type d'un fichier
     * @static
     * @param  $file
     * @return String
     */
    static function getMime($file){
        $folder = ENGINE_URL.FOLDER_CLASS_EXT.'tools/php-mime-type-class/';
        require_once $folder.'class.mime.php';

        $object = new MIMETypes(Tools::getMimeList());
        return $object->getMimeType($file);
    }

    /***
     * Retourne la médiane d'une liste de nombre
     * @static
     * @param array $notes
     * @return float
     */
	static function mediane(array $notes)
	{
		$milieu = floor(count($notes) / 2);
		if (0 == (count($notes)) % 2)
		{
			return ($notes[$milieu] + $notes[$milieu - 1]) / 2; //médiane financière
		}
		else
		{
			return $notes[$milieu];
		}
	}

    static function moyenne(array $number_array){
        return array_sum($number_array) / count($number_array);
    }

    /***
     * Retourne la liste de tout les mimes de fichiers
     * @static
     * @return array
     */
    static function getMimeList(){
        return array(
          '3dm'    => 'x-world/x-3dmf',
          '3dmf'   => 'x-world/x-3dmf',
          'a'      => 'application/octet-stream',
          'aab'    => 'application/x-authorware-bin',
          'aam'    => 'application/x-authorware-map',
          'aas'    => 'application/x-authorware-seg',
          'abc'    => 'text/vnd.abc',
          'acgi'   => 'text/html',
          'afl'    => 'video/animaflex',
          'ai'     => 'application/postscript',
          'aif'    => 'audio/aiff',
          'aif'    => 'audio/x-aiff',
          'aifc'   => 'audio/aiff',
          'aifc'   => 'audio/x-aiff',
          'aiff'   => 'audio/aiff',
          'aiff'   => 'audio/x-aiff',
          'aim'    => 'application/x-aim',
          'aip'    => 'text/x-audiosoft-intra',
          'ani'    => 'application/x-navi-animation',
          'aos'    => 'application/x-nokia-9000-communicator-add-on-software',
          'aps'    => 'application/mime',
          'arc'    => 'application/octet-stream',
          'arj'    => 'application/arj',
          'arj'    => 'application/octet-stream',
          'art'    => 'image/x-jg',
          'asf'    => 'video/x-ms-asf',
          'asm'    => 'text/x-asm',
          'asp'    => 'text/asp',
          'asx'    => 'application/x-mplayer2',
          'asx'    => 'video/x-ms-asf',
          'asx'    => 'video/x-ms-asf-plugin',
          'au'     => 'audio/basic',
          'au'     => 'audio/x-au',
          'avi'    => 'application/x-troff-msvideo',
          'avi'    => 'video/avi',
          'avi'    => 'video/msvideo',
          'avi'    => 'video/x-msvideo',
          'avs'    => 'video/avs-video',
          'bcpio'  => 'application/x-bcpio',
          'bin'    => 'application/mac-binary',
          'bin'    => 'application/macbinary',
          'bin'    => 'application/octet-stream',
          'bin'    => 'application/x-binary',
          'bin'    => 'application/x-macbinary',
          'bm'     => 'image/bmp',
          'bmp'    => 'image/bmp',
          'bmp'    => 'image/x-windows-bmp',
          'boo'    => 'application/book',
          'book'   => 'application/book',
          'boz'    => 'application/x-bzip2',
          'bsh'    => 'application/x-bsh',
          'bz'     => 'application/x-bzip',
          'bz2'    => 'application/x-bzip2',
          'c'      => 'text/plain',
          'c'      => 'text/x-c',
          'c++'    => 'text/plain',
          'cat'    => 'application/vnd.ms-pki.seccat',
          'cc'     => 'text/plain',
          'cc'     => 'text/x-c',
          'ccad'   => 'application/clariscad',
          'cco'    => 'application/x-cocoa',
          'cdf'    => 'application/cdf',
          'cdf'    => 'application/x-cdf',
          'cdf'    => 'application/x-netcdf',
          'cer'    => 'application/pkix-cert',
          'cer'    => 'application/x-x509-ca-cert',
          'cha'    => 'application/x-chat',
          'chat'   => 'application/x-chat',
          'class'  => 'application/java',
          'class'  => 'application/java-byte-code',
          'class'  => 'application/x-java-class',
          'com'    => 'application/octet-stream',
          'com'    => 'text/plain',
          'conf'   => 'text/plain',
          'cpio'   => 'application/x-cpio',
          'cpp'    => 'text/x-c',
          'cpt'    => 'application/mac-compactpro',
          'cpt'    => 'application/x-compactpro',
          'cpt'    => 'application/x-cpt',
          'crl'    => 'application/pkcs-crl',
          'crl'    => 'application/pkix-crl',
          'crt'    => 'application/pkix-cert',
          'crt'    => 'application/x-x509-ca-cert',
          'crt'    => 'application/x-x509-user-cert',
          'csh'    => 'application/x-csh',
          'csh'    => 'text/x-script.csh',
          'css'    => 'application/x-pointplus',
          'css'    => 'text/css',
          'cxx'    => 'text/plain',
          'dcr'    => 'application/x-director',
          'deepv'  => 'application/x-deepv',
          'def'    => 'text/plain',
          'der'    => 'application/x-x509-ca-cert',
          'dif'    => 'video/x-dv',
          'dir'    => 'application/x-director',
          'dl'     => 'video/dl',
          'dl'     => 'video/x-dl',
          'doc'    => 'application/msword',
          'dot'    => 'application/msword',
          'dp'     => 'application/commonground',
          'drw'    => 'application/drafting',
          'dump'   => 'application/octet-stream',
          'dv'     => 'video/x-dv',
          'dvi'    => 'application/x-dvi',
          'dwf'    => 'model/vnd.dwf',
          'dwg'    => 'application/acad',
          'dwg'    => 'image/vnd.dwg',
          'dwg'    => 'image/x-dwg',
          'dxf'    => 'application/dxf',
          'dxf'    => 'image/vnd.dwg',
          'dxf'    => 'image/x-dwg',
          'dxr'    => 'application/x-director',
          'el'     => 'text/x-script.elisp',
          'elc'    => 'application/x-bytecode.elisp',
          'elc'    => 'application/x-elc',
          'env'    => 'application/x-envoy',
          'eps'    => 'application/postscript',
          'es'     => 'application/x-esrehber',
          'etx'    => 'text/x-setext',
          'evy'    => 'application/envoy',
          'evy'    => 'application/x-envoy',
          'exe'    => 'application/octet-stream',
          'f'      => 'text/plain',
          'f'      => 'text/x-fortran',
          'f77'    => 'text/x-fortran',
          'f90'    => 'text/plain',
          'f90'    => 'text/x-fortran',
          'fdf'    => 'application/vnd.fdf',
          'fif'    => 'application/fractals',
          'fif'    => 'image/fif',
          'fli'    => 'video/fli',
          'fli'    => 'video/x-fli',
          'flo'    => 'image/florian',
          'flx'    => 'text/vnd.fmi.flexstor',
          'fmf'    => 'video/x-atomic3d-feature',
          'for'    => 'text/plain',
          'for'    => 'text/x-fortran',
          'fpx'    => 'image/vnd.fpx',
          'fpx'    => 'image/vnd.net-fpx',
          'frl'    => 'application/freeloader',
          'funk'   => 'audio/make',
          'g'      => 'text/plain',
          'g3'     => 'image/g3fax',
          'gif'    => 'image/gif',
          'gl'     => 'video/gl',
          'gl'     => 'video/x-gl',
          'gsd'    => 'audio/x-gsm',
          'gsm'    => 'audio/x-gsm',
          'gsp'    => 'application/x-gsp',
          'gss'    => 'application/x-gss',
          'gtar'   => 'application/x-gtar',
          'gz'     => 'application/x-compressed',
          'gz'     => 'application/x-gzip',
          'gzip'   => 'application/x-gzip',
          'gzip'   => 'multipart/x-gzip',
          'h'      => 'text/plain',
          'h'      => 'text/x-h',
          'hdf'    => 'application/x-hdf',
          'help'   => 'application/x-helpfile',
          'hgl'    => 'application/vnd.hp-hpgl',
          'hh'     => 'text/plain',
          'hh'     => 'text/x-h',
          'hlb'    => 'text/x-script',
          'hlp'    => 'application/hlp',
          'hlp'    => 'application/x-helpfile',
          'hlp'    => 'application/x-winhelp',
          'hpg'    => 'application/vnd.hp-hpgl',
          'hpgl'   => 'application/vnd.hp-hpgl',
          'hqx'    => 'application/binhex',
          'hqx'    => 'application/binhex4',
          'hqx'    => 'application/mac-binhex',
          'hqx'    => 'application/mac-binhex40',
          'hqx'    => 'application/x-binhex40',
          'hqx'    => 'application/x-mac-binhex40',
          'hta'    => 'application/hta',
          'htc'    => 'text/x-component',
          'htm'    => 'text/html',
          'html'   => 'text/html',
          'htmls'  => 'text/html',
          'htt'    => 'text/webviewhtml',
          'htx'    => 'text/html',
          'ice'    => 'x-conference/x-cooltalk',
          'ico'    => 'image/x-icon',
          'idc'    => 'text/plain',
          'ief'    => 'image/ief',
          'iefs'   => 'image/ief',
          'iges'   => 'application/iges',
          'iges'   => 'model/iges',
          'igs'    => 'application/iges',
          'igs'    => 'model/iges',
          'ima'    => 'application/x-ima',
          'imap'   => 'application/x-httpd-imap',
          'inf'    => 'application/inf',
          'ins'    => 'application/x-internett-signup',
          'ip'     => 'application/x-ip2',
          'isu'    => 'video/x-isvideo',
          'it'     => 'audio/it',
          'iv'     => 'application/x-inventor',
          'ivr'    => 'i-world/i-vrml',
          'ivy'    => 'application/x-livescreen',
          'jam'    => 'audio/x-jam',
          'jav'    => 'text/plain',
          'jav'    => 'text/x-java-source',
          'java'   => 'text/plain',
          'java'   => 'text/x-java-source',
          'jcm'    => 'application/x-java-commerce',
          'jfif'   => 'image/jpeg',
          'jfif'   => 'image/pjpeg',
          'jfif-tbnl' => 'image/jpeg',
          'jpe'    => 'image/jpeg',
          'jpe'    => 'image/pjpeg',
          'jpeg'   => 'image/jpeg',
          'jpeg'   => 'image/pjpeg',
          'jpg'    => 'image/jpeg',
          'jpg'    => 'image/pjpeg',
          'jps'    => 'image/x-jps',
          'js'     => 'application/x-javascript',
          'jut'    => 'image/jutvision',
          'kar'    => 'audio/midi',
          'kar'    => 'music/x-karaoke',
          'ksh'    => 'application/x-ksh',
          'ksh'    => 'text/x-script.ksh',
          'la'     => 'audio/nspaudio',
          'la'     => 'audio/x-nspaudio',
          'lam'    => 'audio/x-liveaudio',
          'latex'  => 'application/x-latex',
          'lha'    => 'application/lha',
          'lha'    => 'application/octet-stream',
          'lha'    => 'application/x-lha',
          'lhx'    => 'application/octet-stream',
          'list'   => 'text/plain',
          'lma'    => 'audio/nspaudio',
          'lma'    => 'audio/x-nspaudio',
          'log'    => 'text/plain',
          'lsp'    => 'application/x-lisp',
          'lsp'    => 'text/x-script.lisp',
          'lst'    => 'text/plain',
          'lsx'    => 'text/x-la-asf',
          'ltx'    => 'application/x-latex',
          'lzh'    => 'application/octet-stream',
          'lzh'    => 'application/x-lzh',
          'lzx'    => 'application/lzx',
          'lzx'    => 'application/octet-stream',
          'lzx'    => 'application/x-lzx',
          'm'      => 'text/plain',
          'm'      => 'text/x-m',
          'm1v'    => 'video/mpeg',
          'm2a'    => 'audio/mpeg',
          'm2v'    => 'video/mpeg',
          'm3u'    => 'audio/x-mpequrl',
          'man'    => 'application/x-troff-man',
          'map'    => 'application/x-navimap',
          'mar'    => 'text/plain',
          'mbd'    => 'application/mbedlet',
          'mc$'    => 'application/x-magic-cap-package-1.0',
          'mcd'    => 'application/mcad',
          'mcd'    => 'application/x-mathcad',
          'mcf'    => 'image/vasa',
          'mcf'    => 'text/mcf',
          'mcp'    => 'application/netmc',
          'me'     => 'application/x-troff-me',
          'mht'    => 'message/rfc822',
          'mhtml'  => 'message/rfc822',
          'mid'    => 'application/x-midi',
          'mid'    => 'audio/midi',
          'mid'    => 'audio/x-mid',
          'mid'    => 'audio/x-midi',
          'mid'    => 'music/crescendo',
          'mid'    => 'x-music/x-midi',
          'midi'   => 'application/x-midi',
          'midi'   => 'audio/midi',
          'midi'   => 'audio/x-mid',
          'midi'   => 'audio/x-midi',
          'midi'   => 'music/crescendo',
          'midi'   => 'x-music/x-midi',
          'mif'    => 'application/x-frame',
          'mif'    => 'application/x-mif',
          'mime'   => 'message/rfc822',
          'mime'   => 'www/mime',
          'mjf'    => 'audio/x-vnd.audioexplosion.mjuicemediafile',
          'mjpg'   => 'video/x-motion-jpeg',
          'mm'     => 'application/base64',
          'mm'     => 'application/x-meme',
          'mme'    => 'application/base64',
          'mod'    => 'audio/mod',
          'mod'    => 'audio/x-mod',
          'moov'   => 'video/quicktime',
          'mov'    => 'video/quicktime',
          'movie'  => 'video/x-sgi-movie',
          'mp2'    => 'audio/mpeg',
          'mp2'    => 'audio/x-mpeg',
          'mp2'    => 'video/mpeg',
          'mp2'    => 'video/x-mpeg',
          'mp2'    => 'video/x-mpeq2a',
          'mp3'    => 'audio/mpeg3',
          'mp3'    => 'audio/x-mpeg-3',
          'mp3'    => 'video/mpeg',
          'mp3'    => 'video/x-mpeg',
          'mpa'    => 'audio/mpeg',
          'mpa'    => 'video/mpeg',
          'mpc'    => 'application/x-project',
          'mpe'    => 'video/mpeg',
          'mpeg'   => 'video/mpeg',
          'mpg'    => 'audio/mpeg',
          'mpg'    => 'video/mpeg',
          'mpga'   => 'audio/mpeg',
          'mpp'    => 'application/vnd.ms-project',
          'mpt'    => 'application/x-project',
          'mpv'    => 'application/x-project',
          'mpx'    => 'application/x-project',
          'mrc'    => 'application/marc',
          'ms'     => 'application/x-troff-ms',
          'mv'     => 'video/x-sgi-movie',
          'my'     => 'audio/make',
          'mzz'    => 'application/x-vnd.audioexplosion.mzz',
          'nap'    => 'image/naplps',
          'naplps' => 'image/naplps',
          'nc'     => 'application/x-netcdf',
          'ncm'    => 'application/vnd.nokia.configuration-message',
          'nif'    => 'image/x-niff',
          'niff'   => 'image/x-niff',
          'nix'    => 'application/x-mix-transfer',
          'nsc'    => 'application/x-conference',
          'nvd'    => 'application/x-navidoc',
          'o'      => 'application/octet-stream',
          'oda'    => 'application/oda',
          'omc'    => 'application/x-omc',
          'omcd'   => 'application/x-omcdatamaker',
          'omcr'   => 'application/x-omcregerator',
          'p'      => 'text/x-pascal',
          'p10'    => 'application/pkcs10',
          'p10'    => 'application/x-pkcs10',
          'p12'    => 'application/pkcs-12',
          'p12'    => 'application/x-pkcs12',
          'p7a'    => 'application/x-pkcs7-signature',
          'p7c'    => 'application/pkcs7-mime',
          'p7c'    => 'application/x-pkcs7-mime',
          'p7m'    => 'application/pkcs7-mime',
          'p7m'    => 'application/x-pkcs7-mime',
          'p7r'    => 'application/x-pkcs7-certreqresp',
          'p7s'    => 'application/pkcs7-signature',
          'part'   => 'application/pro_eng',
          'pas'    => 'text/pascal',
          'pbm'    => 'image/x-portable-bitmap',
          'pcl'    => 'application/vnd.hp-pcl',
          'pcl'    => 'application/x-pcl',
          'pct'    => 'image/x-pict',
          'pcx'    => 'image/x-pcx',
          'pdb'    => 'chemical/x-pdb',
          'pdf'    => 'application/pdf',
          'pfunk'  => 'audio/make',
          'pfunk'  => 'audio/make.my.funk',
          'pgm'    => 'image/x-portable-graymap',
          'pgm'    => 'image/x-portable-greymap',
          'pic'    => 'image/pict',
          'pict'   => 'image/pict',
          'pkg'    => 'application/x-newton-compatible-pkg',
          'pko'    => 'application/vnd.ms-pki.pko',
          'pl'     => 'text/plain',
          'pl'     => 'text/x-script.perl',
          'plx'    => 'application/x-pixclscript',
          'pm'     => 'image/x-xpixmap',
          'pm'     => 'text/x-script.perl-module',
          'pm4'    => 'application/x-pagemaker',
          'pm5'    => 'application/x-pagemaker',
          'png'    => 'image/png',
          'pnm'    => 'application/x-portable-anymap',
          'pnm'    => 'image/x-portable-anymap',
          'pot'    => 'application/mspowerpoint',
          'pot'    => 'application/vnd.ms-powerpoint',
          'pov'    => 'model/x-pov',
          'ppa'    => 'application/vnd.ms-powerpoint',
          'ppm'    => 'image/x-portable-pixmap',
          'pps'    => 'application/mspowerpoint',
          'pps'    => 'application/vnd.ms-powerpoint',
          'ppt'    => 'application/mspowerpoint',
          'ppt'    => 'application/powerpoint',
          'ppt'    => 'application/vnd.ms-powerpoint',
          'ppt'    => 'application/x-mspowerpoint',
          'ppz'    => 'application/mspowerpoint',
          'pre'    => 'application/x-freelance',
          'prt'    => 'application/pro_eng',
          'ps'     => 'application/postscript',
          'psd'    => 'application/octet-stream',
          'pvu'    => 'paleovu/x-pv',
          'pwz'    => 'application/vnd.ms-powerpoint',
          'py'     => 'text/x-script.phyton',
          'pyc'    => 'applicaiton/x-bytecode.python',
          'qcp'    => 'audio/vnd.qcelp',
          'qd3'    => 'x-world/x-3dmf',
          'qd3d'   => 'x-world/x-3dmf',
          'qif'    => 'image/x-quicktime',
          'qt'     => 'video/quicktime',
          'qtc'    => 'video/x-qtc',
          'qti'    => 'image/x-quicktime',
          'qtif'   => 'image/x-quicktime',
          'ra'     => 'audio/x-pn-realaudio',
          'ra'     => 'audio/x-pn-realaudio-plugin',
          'ra'     => 'audio/x-realaudio',
          'ram'    => 'audio/x-pn-realaudio',
          'ras'    => 'application/x-cmu-raster',
          'ras'    => 'image/cmu-raster',
          'ras'    => 'image/x-cmu-raster',
          'rast'   => 'image/cmu-raster',
          'rexx'   => 'text/x-script.rexx',
          'rf'     => 'image/vnd.rn-realflash',
          'rgb'    => 'image/x-rgb',
          'rm'     => 'application/vnd.rn-realmedia',
          'rm'     => 'audio/x-pn-realaudio',
          'rmi'    => 'audio/mid',
          'rmm'    => 'audio/x-pn-realaudio',
          'rmp'    => 'audio/x-pn-realaudio',
          'rmp'    => 'audio/x-pn-realaudio-plugin',
          'rng'    => 'application/ringing-tones',
          'rng'    => 'application/vnd.nokia.ringing-tone',
          'rnx'    => 'application/vnd.rn-realplayer',
          'roff'   => 'application/x-troff',
          'rp'     => 'image/vnd.rn-realpix',
          'rpm'    => 'audio/x-pn-realaudio-plugin',
          'rt'     => 'text/richtext',
          'rt'     => 'text/vnd.rn-realtext',
          'rtf'    => 'application/rtf',
          'rtf'    => 'application/x-rtf',
          'rtf'    => 'text/richtext',
          'rtx'    => 'application/rtf',
          'rtx'    => 'text/richtext',
          'rv'     => 'video/vnd.rn-realvideo',
          's'      => 'text/x-asm',
          's3m'    => 'audio/s3m',
          'saveme' => 'application/octet-stream',
          'sbk'    => 'application/x-tbook',
          'scm'    => 'application/x-lotusscreencam',
          'scm'    => 'text/x-script.guile',
          'scm'    => 'text/x-script.scheme',
          'scm'    => 'video/x-scm',
          'sdml'   => 'text/plain',
          'sdp'    => 'application/sdp',
          'sdp'    => 'application/x-sdp',
          'sdr'    => 'application/sounder',
          'sea'    => 'application/sea',
          'sea'    => 'application/x-sea',
          'set'    => 'application/set',
          'sgm'    => 'text/sgml',
          'sgm'    => 'text/x-sgml',
          'sgml'   => 'text/sgml',
          'sgml'   => 'text/x-sgml',
          'sh'     => 'application/x-bsh',
          'sh'     => 'application/x-sh',
          'sh'     => 'application/x-shar',
          'sh'     => 'text/x-script.sh',
          'shar'   => 'application/x-bsh',
          'shar'   => 'application/x-shar',
          'shtml'  => 'text/html',
          'shtml'  => 'text/x-server-parsed-html',
          'sid'    => 'audio/x-psid',
          'sit'    => 'application/x-sit',
          'sit'    => 'application/x-stuffit',
          'skd'    => 'application/x-koan',
          'skm'    => 'application/x-koan',
          'skp'    => 'application/x-koan',
          'skt'    => 'application/x-koan',
          'sl'     => 'application/x-seelogo',
          'smi'    => 'application/smil',
          'smil'   => 'application/smil',
          'snd'    => 'audio/basic',
          'snd'    => 'audio/x-adpcm',
          'sol'    => 'application/solids',
          'spc'    => 'application/x-pkcs7-certificates',
          'spc'    => 'text/x-speech',
          'spl'    => 'application/futuresplash',
          'spr'    => 'application/x-sprite',
          'sprite' => 'application/x-sprite',
          'src'    => 'application/x-wais-source',
          'ssi'    => 'text/x-server-parsed-html',
          'ssm'    => 'application/streamingmedia',
          'sst'    => 'application/vnd.ms-pki.certstore',
          'step'   => 'application/step',
          'stl'    => 'application/sla',
          'stl'    => 'application/vnd.ms-pki.stl',
          'stl'    => 'application/x-navistyle',
          'stp'    => 'application/step',
          'sv4cpio'=> 'application/x-sv4cpio',
          'sv4crc' => 'application/x-sv4crc',
          'svf'    => 'image/vnd.dwg',
          'svf'    => 'image/x-dwg',
          'svr'    => 'application/x-world',
          'svr'    => 'x-world/x-svr',
          'swf'    => 'application/x-shockwave-flash',
          't'      => 'application/x-troff',
          'talk'   => 'text/x-speech',
          'tar'    => 'application/x-tar',
          'tbk'    => 'application/toolbook',
          'tbk'    => 'application/x-tbook',
          'tcl'    => 'application/x-tcl',
          'tcl'    => 'text/x-script.tcl',
          'tcsh'   => 'text/x-script.tcsh',
          'tex'    => 'application/x-tex',
          'texi'   => 'application/x-texinfo',
          'texinfo'=> 'application/x-texinfo',
          'text'   => 'application/plain',
          'text'   => 'text/plain',
          'tgz'    => 'application/gnutar',
          'tgz'    => 'application/x-compressed',
          'tif'    => 'image/tiff',
          'tif'    => 'image/x-tiff',
          'tiff'   => 'image/tiff',
          'tiff'   => 'image/x-tiff',
          'tr'     => 'application/x-troff',
          'tsi'    => 'audio/tsp-audio',
          'tsp'    => 'application/dsptype',
          'tsp'    => 'audio/tsplayer',
          'tsv'    => 'text/tab-separated-values',
          'turbot' => 'image/florian',
          'txt'    => 'text/plain',
          'uil'    => 'text/x-uil',
          'uni'    => 'text/uri-list',
          'unis'   => 'text/uri-list',
          'unv'    => 'application/i-deas',
          'uri'    => 'text/uri-list',
          'uris'   => 'text/uri-list',
          'ustar'  => 'application/x-ustar',
          'ustar'  => 'multipart/x-ustar',
          'uu'     => 'application/octet-stream',
          'uu'     => 'text/x-uuencode',
          'uue'    => 'text/x-uuencode',
          'vcd'    => 'application/x-cdlink',
          'vcs'    => 'text/x-vcalendar',
          'vda'    => 'application/vda',
          'vdo'    => 'video/vdo',
          'vew'    => 'application/groupwise',
          'viv'    => 'video/vivo',
          'viv'    => 'video/vnd.vivo',
          'vivo'   => 'video/vivo',
          'vivo'   => 'video/vnd.vivo',
          'vmd'    => 'application/vocaltec-media-desc',
          'vmf'    => 'application/vocaltec-media-file',
          'voc'    => 'audio/voc',
          'voc'    => 'audio/x-voc',
          'vos'    => 'video/vosaic',
          'vox'    => 'audio/voxware',
          'vqe'    => 'audio/x-twinvq-plugin',
          'vqf'    => 'audio/x-twinvq',
          'vql'    => 'audio/x-twinvq-plugin',
          'vrml'   => 'application/x-vrml',
          'vrml'   => 'model/vrml',
          'vrml'   => 'x-world/x-vrml',
          'vrt'    => 'x-world/x-vrt',
          'vsd'    => 'application/x-visio',
          'vst'    => 'application/x-visio',
          'vsw'    => 'application/x-visio',
          'w60'    => 'application/wordperfect6.0',
          'w61'    => 'application/wordperfect6.1',
          'w6w'    => 'application/msword',
          'wav'    => 'audio/wav',
          'wav'    => 'audio/x-wav',
          'wb1'    => 'application/x-qpro',
          'wbmp'   => 'image/vnd.wap.wbmp',
          'web'    => 'application/vnd.xara',
          'wiz'    => 'application/msword',
          'wk1'    => 'application/x-123',
          'wmf'    => 'windows/metafile',
          'wml'    => 'text/vnd.wap.wml',
          'wmlc'   => 'application/vnd.wap.wmlc',
          'wmls'   => 'text/vnd.wap.wmlscript',
          'wmlsc'  => 'application/vnd.wap.wmlscriptc',
          'word'   => 'application/msword',
          'wp'     => 'application/wordperfect',
          'wp5'    => 'application/wordperfect',
          'wp5'    => 'application/wordperfect6.0',
          'wp6'    => 'application/wordperfect',
          'wpd'    => 'application/wordperfect',
          'wpd'    => 'application/x-wpwin',
          'wq1'    => 'application/x-lotus',
          'wri'    => 'application/mswrite',
          'wri'    => 'application/x-wri',
          'wrl'    => 'application/x-world',
          'wrl'    => 'model/vrml',
          'wrl'    => 'x-world/x-vrml',
          'wrz'    => 'model/vrml',
          'wrz'    => 'x-world/x-vrml',
          'wsc'    => 'text/scriplet',
          'wsrc'   => 'application/x-wais-source',
          'wtk'    => 'application/x-wintalk',
          'xbm'    => 'image/x-xbitmap',
          'xbm'    => 'image/x-xbm',
          'xbm'    => 'image/xbm',
          'xdr'    => 'video/x-amt-demorun',
          'xgz'    => 'xgl/drawing',
          'xif'    => 'image/vnd.xiff',
          'xl'     => 'application/excel',
          'xla'    => 'application/excel',
          'xla'    => 'application/x-excel',
          'xla'    => 'application/x-msexcel',
          'xlb'    => 'application/excel',
          'xlb'    => 'application/vnd.ms-excel',
          'xlb'    => 'application/x-excel',
          'xlc'    => 'application/excel',
          'xlc'    => 'application/vnd.ms-excel',
          'xlc'    => 'application/x-excel',
          'xld'    => 'application/excel',
          'xld'    => 'application/x-excel',
          'xlk'    => 'application/excel',
          'xlk'    => 'application/x-excel',
          'xll'    => 'application/excel',
          'xll'    => 'application/vnd.ms-excel',
          'xll'    => 'application/x-excel',
          'xlm'    => 'application/excel',
          'xlm'    => 'application/vnd.ms-excel',
          'xlm'    => 'application/x-excel',
          'xls'    => 'application/excel',
          'xls'    => 'application/vnd.ms-excel',
          'xls'    => 'application/x-excel',
          'xls'    => 'application/x-msexcel',
          'xlt'    => 'application/excel',
          'xlt'    => 'application/x-excel',
          'xlv'    => 'application/excel',
          'xlv'    => 'application/x-excel',
          'xlw'    => 'application/excel',
          'xlw'    => 'application/vnd.ms-excel',
          'xlw'    => 'application/x-excel',
          'xlw'    => 'application/x-msexcel',
          'xm'     => 'audio/xm',
          'xml'    => 'application/xml',
          'xml'    => 'text/xml',
          'xmz'    => 'xgl/movie',
          'xpix'   => 'application/x-vnd.ls-xpix',
          'xpm'    => 'image/x-xpixmap',
          'xpm'    => 'image/xpm',
          'x-png'  => 'image/png',
          'xsr'    => 'video/x-amt-showrun',
          'xwd'    => 'image/x-xwd',
          'xwd'    => 'image/x-xwindowdump',
          'xyz'    => 'chemical/x-pdb',
          'z'      => 'application/x-compress',
          'z'      => 'application/x-compressed',
          'zip'    => 'application/x-compressed',
          'zip'    => 'application/x-zip-compressed',
          'zip'    => 'application/zip',
          'zip'    => 'multipart/x-zip',
          'zoo'    => 'application/octet-stream',
          'zsh'    => 'text/x-script.zsh',
          'txt'    => 'text/plain',
          'htm'    => 'text/html',
          'html'   => 'text/html',
          'php'    => 'application/x-httpd-php',
          'phps'   => 'application/x-httpd-phps',
          'css'    => 'text/css',
          'js'     => 'application/javascript',
          'json'   => 'application/json',
          'xml'    => 'application/xml',
          'swf'    => 'application/x-shockwave-flash',
          'flv'    => 'video/x-flv',
          'asc'    => 'text/plain',
          'atom'   => 'application/atom+xml',
          'bcpio'  => 'application/x-bcpio',
          'png'    => 'image/png',
          'jpe'    => 'image/jpeg',
          'jpeg'   => 'image/jpeg',
          'jpg'    => 'image/jpeg',
          'gif'    => 'image/gif',
          'bmp'    => 'image/bmp',
          'ico'    => 'image/vnd.microsoft.icon',
          'tiff'   => 'image/tiff',
          'tif'    => 'image/tiff',
          'svg'    => 'image/svg+xml',
          'svgz'   => 'image/svg+xml',
          'zip'    => 'application/zip',
          'rar'    => 'application/x-rar-compressed',
          'exe'    => 'application/x-msdownload',
          'msi'    => 'application/x-msdownload',
          'cab'    => 'application/vnd.ms-cab-compressed',
          'mp3'    => 'audio/mpeg',
          'qt'     => 'video/quicktime',
          'mov'    => 'video/quicktime',
          'au'     => 'audio/basic',
          'avi'    => 'video/x-msvideo',
          'pdf'    => 'application/pdf',
          'psd'    => 'image/vnd.adobe.photoshop',
          'ai'     => 'application/postscript',
          'eps'    => 'application/postscript',
          'ps'     => 'application/postscript',
          'aif'    => 'audio/x-aiff',
          'aifc'   => 'audio/x-aiff',
          'aiff'   => 'audio/x-aiff',
          'doc'    => 'application/msword',
          'rtf'    => 'application/rtf',
          'xls'    => 'application/vnd.ms-excel',
          'ppt'    => 'application/vnd.ms-powerpoint',
          'odt'    => 'application/vnd.oasis.opendocument.text',
          'ods'    => 'application/vnd.oasis.opendocument.spreadsheet',
          'swf'    => 'application/x-shockwave-flash',
          'swf'    => 'application/x-shockwave-flash2-preview',
          'swf'    => 'application/futuresplash',
          'swf'    => 'image/vnd.rn-realflash'
        );
    }
}
